/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package co.dzgroup.votacion.implementacion;

import co.dzgroup.votacion.conexion.BaseDatos;
import co.dzgroup.votacion.interfaz.IParametrizacion;
import co.dzgroup.votacion.modelo.Administrador;
import co.dzgroup.votacion.modelo.Barrio;
import co.dzgroup.votacion.modelo.Candidato;
import co.dzgroup.votacion.modelo.Comuna;
import co.dzgroup.votacion.modelo.Departamento;
import co.dzgroup.votacion.modelo.Eleccion;
import co.dzgroup.votacion.modelo.Municipio;
import co.dzgroup.votacion.modelo.PartidoPolitico;
import co.dzgroup.votacion.modelo.Persona;
import co.dzgroup.votacion.modelo.TipoEleccion;
import co.dzgroup.votacion.modelo.Votante;
import co.dzgroup.votacion.modelo.Voto;
import java.sql.SQLException;
import java.util.List;

/**
 * Clase ejecución que se encarga de gestionar los llamados a la clase
 * que se encarga de ejecutar
 * @author Lucho
 */
public class ParametrizacionEjecucion implements IParametrizacion {


    private ParametrizacionImpl parametrizacionImpl;
    private BaseDatos bd;

    /**
     * Constructor por defecto de la clase
     */
    public ParametrizacionEjecucion() {
        bd=new BaseDatos();
        parametrizacionImpl=new ParametrizacionImpl();
    }
    
    @Override
    public boolean guardarPartidoPolitico(PartidoPolitico partidoPolitico) throws SQLException {
        return parametrizacionImpl.guardarPartidoPolitico(bd, partidoPolitico);
    }

    @Override
    public Eleccion guardarEleccion(Eleccion eleccion) throws SQLException {
        return parametrizacionImpl.guardarEleccion(bd, eleccion);
    }

    @Override
    public List<TipoEleccion> consultarTiposEleccion() throws SQLException {
        return parametrizacionImpl.consultarTiposEleccion(bd);
    }

    @Override
    public List<Departamento> consultarDepartamento() throws SQLException {
        return parametrizacionImpl.consultarDepartamentos(bd);
    }

    @Override
    public List<PartidoPolitico> consultarPartidosPoliticos() throws SQLException {
        return parametrizacionImpl.consultarPartidosPoliticos(bd);
    }
    
    @Override
    public boolean guardarCandidato(Candidato candidato) throws SQLException {
        return parametrizacionImpl.guardarCandidato(bd, candidato);
    }


    @Override
    public List<Candidato> seleccionarCandidatosPorTipoEleccion(Integer eleccion_id){
        return parametrizacionImpl.seleccionarCandidatosPorTipoEleccion(bd,eleccion_id);
    }
    
    @Override
    public boolean guardarVoto(Voto voto){
        return parametrizacionImpl.guardarVoto(bd,voto);
    }
    
    @Override
    public Candidato seleccionarCandidato(){
        return parametrizacionImpl.seleccionarCandidato(bd);
    }

   @Override
    public List<Municipio> consultarMunicipio() throws SQLException {
        return parametrizacionImpl.consultarMunicipio(bd);
    }

   @Override
    public List<Comuna> consultarComuna() throws SQLException {
        return parametrizacionImpl.consultarComuna(bd);
    }

   @Override
    public List<Barrio> consultarBarrio() throws SQLException {
        return parametrizacionImpl.consultarBarrio(bd);
    }

   @Override
    public boolean guardarVotante(Votante votante) throws SQLException {
        return parametrizacionImpl.guardarVotante(votante,bd);
    }
    @Override
    public String getCadenaAlfanumAleatoria (int longitud) {
        return parametrizacionImpl.getCadenaAlfanumAleatoria(longitud);
    }
    @Override
    public boolean guardarPersona(Persona persona) throws SQLException {
        return parametrizacionImpl.guardarPersona(persona,bd);
    }

    @Override
    public List<Eleccion> consultarEleccionActual(){
        return parametrizacionImpl.consultarEleccionActual(bd);
    }

    @Override
    public Votante consultarVotantePorDocumento(String documento) throws SQLException {
        return parametrizacionImpl.consultarVotantePorDocumento(bd, documento);
    }
   
    @Override
    public boolean actualizarCodigoLogueoPersona(Integer personaId, String clave) throws SQLException {
        return parametrizacionImpl.actualizarCodigoLogueoPersona(bd, personaId, clave);
    }

    @Override
    public Votante consultarVotante(String usuario, String psw) {
        return parametrizacionImpl.consultarVotante(bd,usuario, psw);
    }

    @Override
    public Administrador consultarAdministrador(String usuario, String psw) {
        return parametrizacionImpl.consultarAdministrador(bd,usuario, psw);
    }

    @Override
    public List<Candidato> consultarCandidatosEleccion(String tiposEleccion) {
        return parametrizacionImpl.consultarCandidatosEleccion(bd, tiposEleccion);
    }

    @Override
    public boolean guardarEleccionCandidato(Eleccion eleccion) throws SQLException {
        return parametrizacionImpl.guardarEleccionCandidato(bd, eleccion);
    }

    @Override
    public List<Eleccion> consultarElecciones() throws SQLException {
        return parametrizacionImpl.consultarElecciones(bd);
    }

    @Override
    public Integer consultarVotosEleccionCandidato(Integer candidato_id, Integer eleccion_id) {
        return parametrizacionImpl.consultarVotosEleccionCandidato(bd, candidato_id, eleccion_id);
    }

    @Override
    public List<Votante> consultarVotantesRangoFechas(Integer rango) {
        return parametrizacionImpl.consultarVotantesRangoFechas(bd, rango);
    }
    
    @Override
    public boolean consultarVotoVotanteEleccion(Integer votante_id,Integer eleccion_id){
        return parametrizacionImpl.consultarVotoVotanteEleccion(bd, votante_id, eleccion_id);
    }
    
    @Override
    public Integer consultarVotosNulosEleccionTipoEleccion(Integer tipo_eleccion_id,Integer eleccion_id){
        return parametrizacionImpl.consultarVotosNulosEleccionTipoEleccion(bd, tipo_eleccion_id, eleccion_id);
    }
    
    @Override
    public Integer consultarVotosBlancoEleccionTipoEleccion(Integer tipo_eleccion_id,Integer eleccion_id){
        return parametrizacionImpl.consultarVotosBlancoEleccionTipoEleccion(bd, tipo_eleccion_id, eleccion_id);
    }

    @Override
    public Votante consultarVotantePorPersonaId(Integer personaId){
        return parametrizacionImpl.consultarVotantePorPersonaId(bd, personaId);
    }
}
